/*
 * 根据Cookie，服务器响应判断用户登录状态
 * 1. 使用之前必须使用ajax.js
 * 2. 使用时应该加上id属性，且属性名必须为dynamic_login。
 * 3. 必须在有header-tip的页面使用，页面中指定位置必须有ID：userBar1和ID：userBar2。
 * 4. 可以在src后面添加?true或?false，不添加默认为false：
 * 		true：若用户没有登录状态则跳转到登录页面
 * 		false：保留在本页面，header-tip中动态显示登录信息或未登录信息
 * 例：<script id="dynamic_login" src="dynamic_login.js?false" ></script>
 * 
 * 使用：
 * 	1. 外部引用该JS文件即自动执行dLogin()
 * 	2. isLogin()：返回用户是否登录，布尔值。
 * 
 */
//判断用户是否登录，isRedirect：是否跳转至登录页面

function dLogin(isRedirect) {
	let userBar1 = document.getElementById('userBar1');
	let userBar2 = document.getElementById('userBar2');
	
	// 获取sno和pwd，发送至服务器校验
	let value = getCookieValue('userCookie');
	// 若没有值则为未登录状态
	if(!value) {
		if(isRedirect) {
			location.replace("/page/user/login.html");
			return;
		} else {
			userBar1.innerHTML = `<a href="/page/user/login.html">你好，请登录</a>`;
			userBar2.innerHTML = `<a class="ht" href="/page/user/regist.html">立即注册</a>`;
			return;
		}
	}
	// 若有值，传至服务器校验该值的合法性
	let snoValue = value.split('#_TPLAssociation_#')[0];
	let pwdValue = value.split('#_TPLAssociation_#')[1];
	ajax({
		type: 'POST',
		url: '/user/isLogin',
		async: true,
		data: {
			sno: snoValue,
			pwd: pwdValue
		},
		success: function(xhr) {
			let arg = JSON.parse(xhr.responseText);
			if(arg.code == 200 && arg.message == 'success') {
				let nickname = arg.data.nickname;
				userBar1.innerHTML = `<a class="ht" href="/page/user/space">${nickname}</a>`
				userBar2.innerHTML = `<a href="/user/logout?redirectURL=${location.href}">退出</a>`
			} else {
				if(isRedirect) {
					location.replace("/page/user/login.html");
					return;
				} else {
					userBar1.innerHTML = `<a href="/page/user/login.html">你好，请登录</a>`;
					userBar2.innerHTML = `<a class="ht" href="/page/user/regist.html">立即注册</a>`;
				}
			}
		}
	});
}
// 从cookie中根据key值去value
function getCookieValue(key) {
	let cookie = document.cookie;
	if(cookie.length > 0) {
		let startIndex = cookie.indexOf(key);
		if(startIndex != -1) {
			// 存在key
			let endIndex = cookie.indexOf(';', startIndex + key.length + 1)
			if(endIndex == -1) {
				// 说明是最后一个
				endIndex = cookie.length;
			}
			let value = cookie.substring(startIndex + key.length + 1, endIndex);
			return unescape(value.trim());
		}
	}
	// 若没有cookie或找不到key则返回null
	return null;
}
let self = document.getElementById('dynamic_login');
let src = self.src;
let index = src.lastIndexOf('?');
let isRedirect = false;
if(index != -1) {
	isRedirect = src.substring(index + 1);
}
// 执行
dLogin(isRedirect);